﻿
var ObjectPage2 = {
    uriAgregarPasajeroTemporal2: '',
    uriGenerarReserva2: '',
    uriMarcarAsientosNoDisponibles2: '',
    uriMarcarAsientosNoDisponiblesVuelta2: '',
    uriPaginaPrincipal2: '',
    asientosReservadosTemporal2: [],
    asientosReservadosVueltaTemporal2: [],
    uriDatosPasajero2: ''
};

function getAge2(dateString) {
    var today = new Date();
    var birthDate = new Date(dateString);
    var age = today.getFullYear() - birthDate.getFullYear();
    var m = today.getMonth() - birthDate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
        age--;
    }
    return age;
}

$(document).ready(function () {

    $("#TipoDocumento").change(function () {
        if ($("#TipoDocumento").val() == "DNI") {
            $("#pasajeroDNI").attr("maxlength", "8");
        } else {
            $("#pasajeroDNI").attr("maxlength", "11");
        }
    });

    $("#pasajeroFecNacimiento").blur(function () {

        if (getAge2($("#pasajeroFecNacimiento").val()) < 18)
            $("#pnlMenorEdad").show();
        else
            $("#pnlMenorEdad").hide();
    });

    $("#btnContinuarSeleccionAsientos2").click(function () {
        var AnyProgramacionSeleccionada = false;
        var AnyProgramacionSeleccionadaVuelta = false;
        $("input[name='rdSeleccionProgramacion']").each(function () {
            if ($(this).is(":checked")) {
                AnyProgramacionSeleccionada = true;
            }
        });

        $("input[name='rdSeleccionProgramacionVuelta']").each(function () {
            if ($(this).is(":checked")) {
                AnyProgramacionSeleccionadaVuelta = true;
            }
        });



        if (AnyProgramacionSeleccionada) {


            if ($("#hdnTipoReserva").val() != "IDA") {
                if (!AnyProgramacionSeleccionadaVuelta) {
                    alert("Debe seleccionar una programacion de regreso para continuar!");
                    return;
                }
            }


            stepSeleccionAsientos2();
        } else {
            alert("Debe seleccionar una programacion para continuar!");
        }
    });

    $("#btnContinuarRegistroPasajero2").click(function () {
        if ($("#spanNroAsiento").text() == "") {
            alert("Debe seleccionar un asiento para continuar con el registro!")
            return;
        }

        if ($("#hdnTipoReserva").val() != "IDA") {
            if ($("#spanNroAsientoVuelta").text() == "") {
                alert("Debe seleccionar un asiento de vuelta para continuar con el registro!")
                return;
            }
        }

        stepRegistroPasajero2();

    });

    $("#btnRegresarNuevaReserva2").click(function () {
        document.location.href = ObjectPage2.uriPaginaPrincipal2;
    });

    $("#AsientosIda input[type='button']").click(function () {
        $("#AsientosIda input[type='button']").each(function () {
            if ($(this).attr("class") != "ocupado" && $(this).attr("class") != "reservado") {
                $(this).removeClass("seleccionado");
            }
        });
        $(this).addClass("seleccionado");
        marcarAsientosSeleccionadosTemporalmente2();
    });

    $("#AsientosVuelta input[type='button']").click(function () {
        $("#AsientosVuelta input[type='button']").each(function () {
            if ($(this).attr("class") != "ocupado" && $(this).attr("class") != "reservado") {
                $(this).removeClass("seleccionado");
            }
        });
        $(this).addClass("seleccionado");
        marcarAsientosSeleccionadosVueltaTemporalmente2();
    });


    $("#pasajeroDNI").blur(function () {
        getDatosPasajero2();
    });
});

function getDatosPasajero2() {
    var params = "{'NroDni' : '" + $("#pasajeroDNI").val() + "'}";
    $.ajax({
        type: "POST",
        url: ObjectPage2.uriDatosPasajero2,
        data: params,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            if (data.any == 1) {

                $("#pasajeroFecNacimiento").val(data.datos.FechaNacimiento);
                $("#pasajeroTelefono").val(data.datos.Telefono);
                $("#pasajeroNombre").val(data.datos.Nombre);
                $("#pasajeroApPaterno").val(data.datos.ApellidoPaterno);
                $("#pasajeroApMaterno").val(data.datos.ApellidoMaterno);
                $("#pasajeroEmail").val(data.datos.Email);
                $("#pasajeroDireccion").val(data.datos.Direccion);
                $("#pasajeroTelefono").val(data.datos.Telefono);
                $("#pasajeroFecNacimiento").val(data.datos.FechaNacimiento);
                //$("#Almuerzo").val(data.datos.Almuerzo);
                //$("#Refrigerio").val(data.datos.Refrigerio);
            }
        },
        error: errorInesperado
    });
}


function generarReserva2() {
    if ($("#TipoDocumento").val() == "") { alert("Debe seleccionar un tipo de documento"); return false; }
    if ($("#TipoDocumento").val() == "DNI") {
        if ($("#pasajeroDNI").val().length < 8) { alert("El numero de DNI debe tener 8 digitos"); return false; }
    } else {
        if ($("#pasajeroDNI").val().length < 11) { alert("El numero de CE debe tener 11 digitos"); return false; }
    }
    if ($("#pasajeroTelefono").val().length < 7) { alert("El numero telefonico debe tener 7 digitos"); return false; }
    if ($("#pasajeroNombre").val() == "") { alert("Debe ingresar todos los datos requeridos"); return false; }
    if ($("#pasajeroApPaterno").val() == "") { alert("Debe ingresar todos los datos requeridos"); return false; }
    if ($("#pasajeroApMaterno").val() == "") { alert("Debe ingresar todos los datos requeridos"); return false; }
    if ($("#pasajeroDNI").val() == "") { alert("Debe ingresar todos los datos requeridos"); return false; }
    if ($("#pasajeroEmail").val() == "") { alert("Debe ingresar todos los datos requeridos"); return false; }
    if ($("#pasajeroDireccion").val() == "") { alert("Debe ingresar todos los datos requeridos"); return false; }
    if ($("#pasajeroTelefono").val() == "") { alert("Debe ingresar todos los datos requeridos"); return false; }
    if ($("#pasajeroTelefono").val().length < 7) { alert("El numero telefonico debe tener 7 digitos"); return false; }
    if ($("#pasajeroFecNacimiento").val() == "") { alert("Debe ingresar todos los datos requeridos"); return false; }
    if (!validarEmail($("#pasajeroEmail").val())) { alert("El formato del correo electronico es incorrecto"); return false; }
    if ($("#Refrigerio").val() == "") { alert("Debe seleccionar un tipo de refrigerio"); return false; }
    if ($("#Almuerzo").val() == "") { alert("Debe seleccionar un tipo de almuerzo"); return false; }

    if (!confirm("Esta seguro que desea registrar la reserva?")) return;
    savePasajeroTemporal2();
    var params = "{ 'idProgramacionViaje' : '" + $("#hdnNroProgramacionSeleccionado").val() + "', 'idProgramacionViajeVuelta' : '" + $("#hdnNroProgramacionSeleccionadoVuelta").val() + "'}";
    $.ajax({
        type: "POST",
        url: ObjectPage2.uriGenerarReserva2,
        data: params,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            if (data.result == "1") {
                alert(data.mensajeRespuesta);
                document.location.href = ObjectPage2.uriPaginaPrincipal2;
            } else {
                alert(data.mensajeRespuesta);
                marcarAsientosNoDisponibles2($("#hdnNroProgramacionSeleccionado").val());
                if ($("#hdnNroProgramacionSeleccionadoVuelta").val() != "0") {
                    marcarAsientosNoDisponiblesVuelta2($("#hdnNroProgramacionSeleccionadoVuelta").val());
                }
            }
        },
        error: errorInesperado
    });
}

function agregarPasajeroTemporal2() {
    if (savePasajeroTemporal2()) {
        stepSeleccionAsientos2();
        alert("Se registro el pasajero satisfactoriamente");
        limpiarControlesPasajero2();
    }
}

function savePasajeroTemporal2() {
    var registroSatisfactorio = false;
    if ($("#TipoDocumento").val() == "") { alert("Debe seleccionar un tipo de documento"); return false; }
    if ($("#TipoDocumento").val() == "DNI") {
        if ($("#pasajeroDNI").val().length < 8) { alert("El numero de DNI debe tener 8 digitos"); return false; }
    } else {
        if ($("#pasajeroDNI").val().length < 11) { alert("El numero de CE debe tener 11 digitos"); return false; }
    }
    if ($("#pasajeroTelefono").val().length < 7) { alert("El numero telefonico debe tener 7 digitos"); return false; }
    if ($("#pasajeroNombre").val() == "") { alert("Debe ingresar todos los datos requeridos"); return false; }
    if ($("#pasajeroApPaterno").val() == "") { alert("Debe ingresar todos los datos requeridos"); return false; }
    if ($("#pasajeroApMaterno").val() == "") { alert("Debe ingresar todos los datos requeridos"); return false; }
    if ($("#pasajeroDNI").val() == "") { alert("Debe ingresar todos los datos requeridos"); return false; }
    if ($("#pasajeroEmail").val() == "") { alert("Debe ingresar todos los datos requeridos"); return false; }
    if ($("#pasajeroDireccion").val() == "") { alert("Debe ingresar todos los datos requeridos"); return false; }
    if ($("#pasajeroTelefono").val() == "") { alert("Debe ingresar todos los datos requeridos"); return false; }
    if ($("#pasajeroTelefono").val().length < 7) { alert("El numero telefonico debe tener 7 digitos"); return false; }
    if ($("#pasajeroFecNacimiento").val() == "") { alert("Debe ingresar todos los datos requeridos"); return false; }
    if (!validarEmail($("#pasajeroEmail").val())) { alert("El formato del correo electronico es incorrecto"); return false; }
    if ($("#Refrigerio").val() == "") { alert("Debe seleccionar un tipo de refrigerio"); return false; }
    if ($("#Almuerzo").val() == "") { alert("Debe seleccionar un tipo de almuerzo"); return false; }
    var params = "{ 'nombrePasajero' : '" + $("#pasajeroNombre").val() + "', 'apPaternoPasajero' : '" + $("#pasajeroApPaterno").val() + "', 'apMaternoPasajero' : '" + $("#pasajeroApMaterno").val() + "', 'dniPasajero' : '" + $("#pasajeroDNI").val() + "', 'emailPasajero' : '" + $("#pasajeroEmail").val() + "', 'direccionPasajero' : '" + $("#pasajeroDireccion").val() + "', 'fecNacimientoPasajero' : '" + $("#pasajeroFecNacimiento").val() + "', 'telefonoPasajero' : '" + $("#pasajeroTelefono").val() + "', 'asiento' : '" + $("#hdnNroAsientoSeleccionado").val() + "', 'asientoVuelta' : '" + $("#hdnNroAsientoSeleccionadoVuelta").val() + "', 'refrigerio' : '" + $("#Refrigerio").val() + "', 'almuerzo' : '" + $("#Almuerzo").val() + "', 'tipoDocumento' : '" + $("#TipoDocumento").val() + "' }";
    $.ajax({
        type: "POST",
        url: ObjectPage2.uriAgregarPasajeroTemporal2,
        data: params,
        async: false,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            if (data.result == "1") {
                ObjectPage2.asientosReservadosTemporal2.push({ 'NroAsiento': $("#hdnNroAsientoSeleccionado").val(), 'Pasajero': $("#pasajeroNombre").val() + " " + $("#pasajeroApPaterno").val() });
                ObjectPage2.asientosReservadosVueltaTemporal2.push({ 'NroAsiento': $("#hdnNroAsientoSeleccionadoVuelta").val(), 'Pasajero': $("#pasajeroNombre").val() + " " + $("#pasajeroApPaterno").val() });
                marcarAsientosSeleccionadosTemporalmente2();
                marcarAsientosSeleccionadosVueltaTemporalmente2();
                registroSatisfactorio = true;
            }
        },
        error: errorInesperado
    });
    return registroSatisfactorio;
}

function marcarAsientosNoDisponibles2(idProgramacionViaje) {
    var params = "{ 'idProgramacionViaje' : '" + idProgramacionViaje + "'}";
    $.ajax({
        type: "POST",
        url: ObjectPage2.uriMarcarAsientosNoDisponibles2,
        data: params,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            $("#spanServicio").text(data.servicio);
            $("#spanPrecio").text(data.precio);
            $.each(data.listaAsientosReservados, function (index, value) {
                $("#AsientosIda #" + value.NroAsiento).removeClass("libre");
                $("#AsientosIda #" + value.NroAsiento).addClass("reservado");
            });

            $.each(data.asientoPagado, function (index, value) {
                $("#AsientosIda #" + value.NroAsiento).removeClass("libre");
                $("#AsientosIda #" + value.NroAsiento).removeClass("reserva");
                $("#AsientosIda #" + value.NroAsiento).addClass("ocupado");
            });
        },
        error: errorInesperado
    });
}

function marcarAsientosNoDisponiblesVuelta2(idProgramacionViaje) {
    var params = "{ 'idProgramacionViaje' : '" + idProgramacionViaje + "'}";
    $.ajax({
        type: "POST",
        url: ObjectPage2.uriMarcarAsientosNoDisponiblesVuelta2,
        data: params,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            $("#spanServicioVuelta").text(data.servicio);
            $("#spanPrecioVuelta").text(data.precio);
            $.each(data.listaAsientosReservados, function (index, value) {
                $("#AsientosVuelta #t" + value.NroAsiento).removeClass("libre");
                $("#AsientosVuelta #t" + value.NroAsiento).addClass("reservado");
            });
            $.each(data.asientoPagado, function (index, value) {
                $("#AsientosVuelta #t" + value.NroAsiento).removeClass("libre");
                $("#AsientosVuelta #t" + value.NroAsiento).removeClass("reservado");
                $("#AsientosVuelta #t" + value.NroAsiento).addClass("ocupado");
            });
        },
        error: errorInesperado
    });
}

function marcarAsientosSeleccionadosTemporalmente2() {
    $.each(ObjectPage2.asientosReservadosTemporal2, function (index, value) {
        $("#AsientosIda #" + value.NroAsiento).removeClass("libre");
        $("#AsientosIda #" + value.NroAsiento).addClass("seleccionado");
    });
}

function marcarAsientosSeleccionadosVueltaTemporalmente2() {
    $.each(ObjectPage2.asientosReservadosVueltaTemporal2, function (index, value) {
        $("#AsientosVuelta #t" + value.NroAsiento).removeClass("libre");
        $("#AsientosVuelta #t" + value.NroAsiento).addClass("seleccionado");
    });
}


function seleccionProgramacionViaje2(programacion) {
    $("#hdnNroProgramacionSeleccionado").val(programacion);
    marcarAsientosNoDisponibles2(programacion);
}

function seleccionProgramacionViajeVuelta2(programacion) {
    $("#hdnNroProgramacionSeleccionadoVuelta").val(programacion);
    marcarAsientosNoDisponiblesVuelta2(programacion);
}

function seleccionAsientos2(asiento) {
    if ($("#AsientosIda #" + asiento).attr("class") != "reservado" && $("#" + asiento).attr("class") != "seleccionado" && $("#" + asiento).attr("class") != "ocupado") {
        $("#hdnNroAsientoSeleccionado").val(asiento);
        $("#spanNroAsiento").text(asiento);
    }
}

function seleccionAsientosVuelta2(asiento) {
    if ($("#AsientosVuelta #t" + asiento).attr("class") != "reservado" && $("#" + asiento).attr("class") != "seleccionado" && $("#" + asiento).attr("class") != "ocupado") {
        $("#hdnNroAsientoSeleccionadoVuelta").val(asiento);
        $("#spanNroAsientoVuelta").text(asiento);
    }
}

function stepListadoProgramacionViaje2() {
    $("#pnlListadoProgramacion").show();
    $("#pnlSeleccionAsientos").hide();
    $("#pnlRegistroDatosPasajero").hide();
}


function stepSeleccionAsientos2() {
    $("#pnlSeleccionAsientos").show();
    $("#pnlListadoProgramacion").hide();
    $("#pnlRegistroDatosPasajero").hide();
}

function stepRegistroPasajero2() {
    $("#pnlRegistroDatosPasajero").show();
    $("#pnlSeleccionAsientos").hide();
    $("#pnlListadoProgramacion").hide();
}

function limpiarControlesPasajero2() {
    $("#pnlMenorEdad").hide();
    $("#TipoDocumento").val("");
    $("#pasajeroNombre").val("");
    $("#pasajeroApPaterno").val("");
    $("#pasajeroApMaterno").val("");
    $("#pasajeroDNI").val("");
    $("#pasajeroEmail").val("");
    $("#pasajeroDireccion").val("");
    $("#pasajeroFecNacimiento").val("");
    $("#pasajeroTelefono").val("");
    $("#hdnNroAsientoSeleccionado").val("0");
    $("#hdnNroAsientoSeleccionadoVuelta").val("0");
    $("#spanNroAsiento").text("");
    $("#spanNroAsientoVuelta").text("");
}

